From ba869e0fe04c44e549954a167813986cf00bbc39 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Wed, 15 Jun 2011 19:59:45 +0200 Subject: [PATCH] toolbar: Handle the fact that size_allocate() != get_allocation() size_allocate() allocates the available space for the margin box, get_allocation() returns the actual space of the content box and those can be different. And then animations never stop. If that makes you go "huh?", you might want to read http://www.w3.org/TR/CSS21/box.html and the docs for gtk_widget_compute_align(). --- gtk/gtktoolbar.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gtk/gtktoolbar.c b/gtk/gtktoolbar.c index f6549194a7..da55c6a988 100644 --- a/gtk/gtktoolbar.c +++ b/gtk/gtktoolbar.c @@ -3513,8 +3513,20 @@ static void toolbar_content_size_allocate (ToolbarContent *content, GtkAllocation *allocation) { + GtkAllocation goal; + gtk_widget_size_allocate (GTK_WIDGET (content->item), allocation); + + toolbar_content_get_goal_allocation (content, &goal); + if (goal.x == allocation->x && + goal.y == allocation->y && + goal.width == allocation->width && + goal.height == allocation->height) + { + gtk_widget_get_allocation (GTK_WIDGET (content->item), &goal); + toolbar_content_set_goal_allocation (content, &goal); + } } static void -- 2.30.2